//class Solution {
//public:
//	int countNumbers(string l, string r, int b) {
//		for (int i = l.size() - 1; i >= 0; i--) {
//			if (l[i] == '0')  l[i] = '9';
//			else {
//				l[i]--;
//				break;
//			}
//		}
//		// string left(fun(l,b)),right(fun(r,b));
//		string left(decimalToBase(l, b)), right(decimalToBase(r, b));
//		string a = left, bb = right;
//		cout << left << ' ' << right << endl;
//		int c = fun2(right, bb, right.size() - 1, 0, b - 1);
//		if (l == "0")
//			return c - 1;
//		int d = fun2(left, a, left.size() - 1, 0, b - 1);
//		return c - d;
//	}
//}; 
//int main() {
//	Solution().countNumbers("23", "28", 8);
//}
//#include <iostream>
//#include <vector>
//#include <algorithm>
//#include <map>
//using namespace std;
//// using ll = long long;
//typedef long long ll;
//ll num[1000006];
//int main() {
//	ll n, S; cin >> n >> S;
//	ll sum = 0, ans = 0, cnt = 0;
//	map<ll, ll> window;
//	for (int i = 1; i <= n; i++) {
//		int p, c;  cin >> p >> c;
//		window[c] += p;
//		sum += p;
//	}
//	for (auto e : window) {
//		ll a = e.first, b = e.second;
//		if (sum >= S) {
//			cnt = a;
//			sum -=  b;
//		}
//		else {
//			ans += (a - cnt) * b;
//		}
//
//		cout << a <<' ' << b <<' ' << cnt<<' ' << sum <<' ' << ans << endl;
//	}
//	cout << ans + cnt * S << endl;
//	return 0;
//}
//#include <iostream>
//using namespace std;
//using ll = long long;
//int arr[100005];
//ll n, k, t;
//bool check(int pos, int end) {
//	int left = max(1, (int)(pos - k + 1));
//	int right = min(end, (int)(pos + k));
//	ll sum = 0, tmp = 0;
//	for (int i = left; i <= right; i++) {
//		tmp += arr[i] * arr[i];
//		sum += arr[i];
//		//if (i - left >= k) {
//		//	tmp -= arr[i - k] * arr[i - k];
//		//	sum -= arr[i - k];
//		//}
//		if (i + 1 >= k + left) {
//			cout << tmp << ' ' << sum << endl;
//			if (tmp * k - sum * sum <= t * k) {
//				return true;
//			}
//			tmp -= arr[i - k] * arr[i - k];
//			sum -= arr[i - k];
//		}
//	}
//	return false;
//}
//int main()
//{
//	cin >> n >> k >> t;
//	for (int i = 1; i <= n; i++) {
//		cin >> arr[i];
//	}
//	for (int i = 2; i <= n; i++) {
//		int j = i;
//		while (j > 1 && arr[j] < arr[j - 1]) {
//			swap(arr[j], arr[j - 1]);
//			j--;
//		}
//		if (i >= k) {
//			if (check(j, i)) {
//				cout << i << endl;
//				return 0;
//			}
//		}
//	}
//	cout << -1 << endl;
//	return 0;
//	//for(int i = 1;i <= n;i++) cout << arr[i] << ' '; 
//	return 0;
//}
//vector<bool> cnt(2026);
//int arr[2026];
//int ans = 0;
//void dfs(int pos) {
//	if (pos == 2026) {
//		ans++;
//		ans %= 1000000007;
//		return;
//	}
//	for (int i = 1; i <= 2025; i++) {
//		if (cnt[i] == false) {
//			arr[i] = i;
//			cnt[i] = true;
//			//if (check(pos)) {
//			//	dfs(i + 1);
//			//}
//		}
//	}
//}
//int main() {
//	dfs(0);
//}
#include <iostream>
#include <cmath>
using namespace std;
double pi = 3.1415926;
int main() {
	double r = sqrt(233 * 233 + 666 * 666);
	double getsin = 666 / r;
	double o = asin(getsin) * 180 / pi;
	double tmp = o * pi * r / 180;
	cout << tmp + r << endl;
	return 0;
}